package com.wnxy.sdd.front.controller.test;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

@Controller
public class TemplateController {
    @Autowired
    private TemplateEngine templateEngine;

    @GetMapping("/course1")
    @ResponseBody
    public String createHtml() throws IOException {
        // 1. 创建上下文
        Context context = new Context();
        // 2. 查询页面需要显示的数据
        Map<String, String> course = new HashMap<>();
        course.put("id", "1234656");
        course.put("title", "独孤九剑");
        course.put("price", "99.99");
        context.setVariable("course", course);

        // 3. 定义生成静态页面需要存放的路径
        File file = new File("C:\\class\\workspace\\_2000\\sdd-online\\sdd-front\\src\\main\\resources\\static\\" +
                course.get("id") + ".html");
        if(!file.exists()){
            // 如果文件不存在，则创建文件
            file.createNewFile();
        }
        // 4. 使用模板引擎将数据写入到文件中
        PrintWriter writer = new PrintWriter(file);
        /**
         * 第一个参数: 模板的名称（就是html的名称）
         * 第二个参数: 上下文对象（里面包含页面需要显示的数据）
         * 第三个参数: 输出流
         */
        templateEngine.process("test/course", context, writer);

        return "静态页面生成成功";
    }
}
